#ifndef PROCESSING_H
#define PROCESSING_H

#include <QObject>
#include <QImage>

/** Обрабатывает переданное изображение
 *
 * @author Василий Почкаенко
 */
class Processing : public QObject{
Q_OBJECT
public:
	explicit Processing(QObject *parent = 0);

	/** Яркость.
	 *
	 * @param img обрабатываемое изображение
	 * @param bright изменение яркости. >= -1, <= 1.
	 */
	static void Brightness(QImage * img, double bright);

	/** Контрастность.
	 *
	 * @param img обрабатываемое изображение
	 * @param bright коэффициент контрастности. >= -1, <= 1.
	 */
	static void contrast(QImage * img, double k);

	/** Бинаризация.*/
	static void Binary(QImage * img);

	/** Яркостный срез.*/
	static void BrightCut(QImage * img, int n);

	/** Инвертирование.*/
	static void Inverting(QImage * img, int n = 256);

	/** Сглаживающий фильтр.*/
	static void Smoothing(QImage * img);

	/** Фильтр Гаусса.*/
	static void GaussFilter(QImage * img, double sigma);

	/** Фильтр.*/
	static void Filter(QImage * img, QVector< QVector<double> >);
signals:

public slots:

};

#endif // PROCESSING_H
